﻿using System;
using System.Collections.Generic;
using System.IO;
using OfficeOpenXml;

namespace ExcelParser
{
    class Program
    {
        // 数据模型
        public class ModelData
        {
            public string Name { get; set; }
            public string Layer { get; set; }  // 改为string类型，保留所有文本数据
            public string ParamSize { get; set; }  // 改为string类型，保留所有文本数据
        }

        static void Main(string[] args)
        {
            // 设置 EPPlus 的许可证上下文
            ExcelPackage.LicenseContext = LicenseContext.NonCommercial;

            // 选择文件
            Console.WriteLine("请选择一个Excel文件：");
            string filePath = Console.ReadLine();

            // 解析Excel文件
            var modelDataList = ParseExcel(filePath);

            // 循环询问用户输入的Name
            while (true)
            {
                Console.WriteLine("请输入Name (输入 'exit' 退出)：");
                string userInput = Console.ReadLine();

                if (userInput.ToLower() == "exit")
                {
                    break;
                }

                // 查找并显示对应的数据
                var modelData = modelDataList.Find(x => x.Name.Equals(userInput, StringComparison.OrdinalIgnoreCase));
                if (modelData != null)
                {
                    Console.WriteLine($"Name: {modelData.Name}, Layer: {modelData.Layer}, Param size (bit): {modelData.ParamSize}");
                }
                else
                {
                    Console.WriteLine("未找到该Name对应的数据");
                }
            }
        }

        // 解析Excel文件并返回数据
        static List<ModelData> ParseExcel(string filePath)
        {
            var modelDataList = new List<ModelData>();

            if (!File.Exists(filePath))
            {
                Console.WriteLine("文件路径无效！");
                return modelDataList;
            }

            using (var package = new ExcelPackage(new FileInfo(filePath)))
            {
                var worksheet = package.Workbook.Worksheets[0];  // 获取第一个工作表
                int rowCount = worksheet.Dimension.Rows;

                for (int row = 2; row <= rowCount; row++) // 从第二行开始，因为第一行是标题
                {
                    var modelData = new ModelData
                    {
                        Name = worksheet.Cells[row, 2].Text,  // 读取Name列
                        Layer = worksheet.Cells[row, 1].Text, // 读取Layer列
                        ParamSize = worksheet.Cells[row, 3].Text // 读取ParamSize列
                    };

                    modelDataList.Add(modelData);
                }
            }

            return modelDataList;
        }
    }
}



//E:\vs code zuoye\学习\2号题\测试2\test.xlsx